Many font generating systems exist for generating Asian character fonts, or simply Asian fonts. An Asian font is composed of a large number of ideographs that represent the characters in the Asian language. Asian languages may include thousands of characters. For example, the Chinese language includes over twenty-thousand distinct characters.
The following are various prior art Asian font generating techniques.
In one conventional computer technique, characters are stored as digitized bitmap images that are scanned from hand generated images of each Asian character in the particular font desired. As can be appreciated, this can be a time and labor intensive task. In addition, the memory space required for an Asian font stored as bitmap images is enormous. For example, if the resolution of each character is 256.times.256, then it takes 65,536 bits of memory per character (or 8192 bytes per character). Multiplied by 20,000 characters in the Chinese language, the amount of memory needed to store a single Asian font is over 1.3 Gbits of memory (or 150 Mbytes). The amount of memory required is unacceptable for many applications.
In another conventional technique, a method has been adopted wherein a character pattern stored in the form of linetone images is displayed or printed out. This method has long been used in the field of X-Y plotters. With this method, it is possible to enlarge or reduce a character size or to rotate a character pattern. However, there is a problem of character quality because the original character pattern is composed of linetone images.
Another prior art method for storing and generating character patterns that attempts to eliminate the above disadvantages is known as the outline font system. This system is described in "PostScript Language Tutorial and Cookbook" by Adobe Systems, Inc. (Addison-Wesley Publishing, 1985). In this method, the outline of a character pattern is stored as a collection of straight lines and curves and a conversion such as for enlargement, reduction, rotation, scaling a conversion is carried out at the time of outputting a character pattern. Since the outline of a character pattern is stored graphically, the conversion can be easily carried out. In addition, it is possible to store an original character pattern in the form of an outline with high quality and with relatively low memory requirements.
Another method of generating character patterns uses character pattern data. The character pattern data of this stroke-based technique includes skeleton pattern data, stroke thickness data and shape parameter data. See U.S. Pat. No. 4,897,638. Another stroke-based technique defines characters with strokes defined by height, width and curvature points. See U.S. Pat. No. 4,990,903. These stroke-based techniques are good for generating characters in a relatively high resolution character space, such as a 256.times.256 bitmap but are inadequate for generating characters in a relatively low resolution character space, such as a 24.times.24 bitmap. The character space is the presentation area for an individual character. The resolution level for the character space is most often determined by display or printer requirements.
With great frequency, features of stroke shapes will not fall directly on available pixels but, instead, fall between pixels. Consequently, due to the coarseness of the display resolution, it may not be possible to display the precise features, thereby losing the feature entirely or at least somewhat altering its shape. For example, the mapping strategy of the '903 patent produces a bitmap font in a 24.times.24 dot matrix pattern as shown in FIG. 1B. This mapping strategy activates a pixel, if it contains a piece of the generated stroke area, as shown by the outline. This mapping strategy avoids the drop out of a stroke shape, but widens the stroke shapes with undesirable pixels. Consequently, the display is jammed with activated pixels which produces an unacceptable low resolution bitmap character. Therefore, the method is optimized for generating a high-resolution font, but is not very suitable for yielding a good quality low-resolution font. Furthermore, these techniques fail to provide an interface for designers and users for easily creating desired character sets.